package com.shangxian.giveithome.service;


import com.shangxian.giveithome.controller.SearchPeoplePoster;
import com.shangxian.giveithome.entity.*;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;

import java.util.List;
@Service
public interface PetService {
    PageableDetails querySearchPet(SearchScreen searchScreen, Pageable pageable);

    SearchPetDetailsS querySearchPetDetails(Long id);

    PageableDetails querySearchPeople(SearchScreen searchScreen, Pageable pageable);

    SearchPeopleDetailsS querySearchPeopleDetails(Long id);

    PageableDetails querySearchAll(SearchScreen searchScreen, Pageable pageable);

    List<PlaceMechanism> queryPlaceMe(Long id, Integer n);

    PageableDetails queryPlace(PlaceScreen placeScreen, Pageable pageable);

    PlaceDetailsS queryPlaceDetails(Long id);

    int createSearchPet(SearchPetCreate searchPetCreate);

    void updateSearchPet(SearchPetUpdate searchPetUpdate);

    void deleteSearchPet(Long id);

    void updateSearchPetStatus(Long id);

    int createSearchPeople(SearchPeopleCreate searchPeopleCreate);

    void updateSearchPeople(SearchPeopleUpdate searchPeopleUpdate);

    void deleteSearchPeople(Long id);

    void updateSearchPeopleStatus(Long id);

    int createPlace(PlaceCreate petCreate);

    void updatePlace(PlaceUpdate placeUpdate);

    void updateAdoptionImg(AdoptionImg adoptionImg, Long id);

    void createAdoption(AdoptionCreate adoptionCreate);

    void adoptionComplete(AdoptionComplete adoptionComplete);

    Adoption queryAdoption(Long petId);

    SearchPetPoster querySearchPetPoster(WxCodeUnLimit wxCodeUnLimit);

    SearchPeoplePoster querySearchPeoplePoster(WxCodeUnLimit wxCodeUnLimit);

    PlacePoster queryPlacePoster(WxCodeUnLimit wxCodeUnLimit);

    VarietiesResultList getPetVarieties();

    int queryPlaceMeCount(Long id);

    AdoptionAgreementDetails queryAdoptionAgreement(Long petId);

    void delPlace(Long petId, Long usId);

    PageableDetails getPetDynamic(Long id,Pageable pageable);
}
